1f003df61ee06c3623ab741c2a86b20ede9fee6a,algorithm/src/org/dzhou/practice/hard/premium/AlienDictionary.java,TopologicalSort,dfs,#char#,158
Before Change
private void dfs(char c) {
visited.add(c);
for (char child : graph.get(c)) {
if (visited.contains(child))
continue;
dfs(child);
}
After Change
visited.put(c, State.VISITING);
if (graph.containsKey(c)) {
for (char child : graph.get(c)) {
if (!visited.containsKey(child))
dfs(child);
else if (visited.get(child) == State.VISITED) {
System.out.println(child + " VISITED");
continue;
} else if (visited.get(child) == State.VISITING) {
System.out.println(child + " VISITING");
hasCircle = true;
return;
}
}
}
visited.put(c, State.VISITED);